﻿using System;

namespace AlgorithmPractice;

/// <summary>
/// 冒泡排序
/// </summary>
public class BubbleSort
{
    public static void Sort(int[] toBeSorted)
    {
        StartSort(toBeSorted);
        Console.WriteLine(string.Join("、", toBeSorted));
    }

    /// <summary>
    /// 重复地走访过要排序的元素列，依次比较两个相邻的元素，如果顺序（如从大到小、首字母从Z到A）错误就把他们交换过来。
    /// 走访元素的工作是重复地进行直到没有相邻元素需要交换，也就是说该元素列已经排序完成。
    /// </summary>
    /// <param name="toBeSorted"></param>
    private static void StartSort(int[] toBeSorted)
    {
        for (var i = 0; i < toBeSorted.Length - 1; i++)
        {
            for (var j = 0; j < toBeSorted.Length - 1 - i; j++)
            {
                if (toBeSorted[j] > toBeSorted[j + 1])
                    (toBeSorted[j], toBeSorted[j + 1]) = (toBeSorted[j + 1], toBeSorted[j]);
            }
        }
    }
}